<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<!-- 
###############################################################################
#
# File:         INDEX.html
# RCS:          $Header: $
# Description:  WINTERP examples/lib-widgets/* description
# Author:       Niels P. Mayer
# Created:      1994
# Modified:     Mon Nov 24 17:36:02 1997 (Niels Mayer) npm@indeed.netcom.com
# Language:     HTML
# Package:      N/A
# Status:       Experimental (Do Not Distribute)
#
# Copyright (C) 1994-1996, Enterprise Integration Technologies Corp. and Niels Mayer.
# WINTERP 1.15-1.99, Copyright (c) 1993, Niels P. Mayer.
# WINTERP 1.0-1.14, Copyright (c) 1989-1992 Hewlett-Packard Co. and Niels Mayer.
# 
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of Enterprise Integration Technologies,
# Hewlett-Packard Company, or Niels Mayer not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. Enterprise Integration Technologies, Hewlett-Packard
# Company, and Niels Mayer makes no representations about the suitability of
# this software for any purpose.  It is provided "as is" without express or
# implied warranty.
# 
# ENTERPRISE INTEGRATION TECHNOLOGIES, HEWLETT-PACKARD COMPANY AND NIELS MAYER
# DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ENTERPRISE
# INTEGRATION TECHNOLOGIES, HEWLETT-PACKARD COMPANY OR NIELS MAYER BE LIABLE
# FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
###############################################################################
-->

<HTML>
<HEAD>
<title>WINTERP 2.0 Widget Class Library (subclasses of Motif primitive classes)</title>
</HEAD>
<BODY>

<h1>WINTERP 2.0 Widget Class Library (subclasses of Motif primitive classes)</h1>

<P>

<UL>
<LI> <a href="../../winterp.html">
Back to WINTERP home page</a>
<LI> <a href="../INDEX.html">
WINTERP 2.0 example programs</a>
</UL>

<DL>

<DT> <a href="2label-pb.lsp">2label-pb.lsp</a>
<DD> Widget hackery -- A composite widget masquerading as a special
pushbutton containing both a pixmap and a label. Major
difference between this "pseudo-widget" and a real pushbutton
is that you don't do :add_callback :XMN_ACTIVATE_CALLBACK, but
rather, you set a callback via method :SET-ACTIVATE-CLOSURE.

<DT> <a href="XmGraph.lsp">XmGraph.lsp</a>
<DD> Define utility methods for WINTERP's built-in
XM_GRAPH_WIDGET_CLASS

<DT> <a href="application.lsp">application.lsp</a>
<DD> WINTERP:APPLICATION-WIDGET-CLASS a subclass of
XM_MAIN_WINDOW_WIDGET_CLASS which contains a message area
instance of TIMED-MESSAGE-DISPLAY-WIDGET-CLASS and has
a pulldown menu system created from a WINTERP:MENU-BAR-WIDGET-CLASS
instance.

<DT> <a href="clock-disp.lsp">clock-disp.lsp</a>
<DD> Define Clock_Display_Widget_Class, a subclass of
XM_LABEL_GADGET_CLASS which displays the time in
Month/Date/Year Hour:Minute format. This makes use of the
Unix 'date' command "date '+\#(%y %m %d %H %M)'" -- if this
doesn't work on your system, it's because your unix isn't
SVID2, XPG2, XPG3, or POSIX.2 compliant and can't understand
the special '+' formatting option for 'date'.

<DT> <a href="epoch-text.lsp">epoch-text.lsp</a>
<DD> define Epoch_Widget_Class -- a text editor widget created by
reparenting an EPOCH multiwindow emacs editor window inside
a WINTERP/Motif widget. This allows you to edit files with a real
text editor while placing the Epoch-edit windows into your
WINTERP-based applications. Epoch is a multiwindow
gnu-emacs-based editor available for free by anonymous ftp
from cs.uiuc.edu. You must load epoch-widg.el into Epoch
first, as this file calls epoch-functions defined there.
This file also assumes that you have Andy Norman's gnuserv
package running under Epoch -- the program
/usr/local/epoch/bin/gnudoit is used to send emacs-lisp
commands to Epoch.
See also ../epoch-test.lsp and ../epoch-widg.el ...

<DT> <a href="file-br.lsp">file-br.lsp</a>
<DD> File_Browser_Widget_Class, a subclass of
String_Browser_Widget_Class, a subclass of XM_LIST_WIDGET_CLASS.
Inherits bindings from String_Browser_Widget_Class.

Note mouse bindings on browser override XmList(3x)'s:
<PRE>
* single left click   -- make item the current selection
* double left click, or single middle click
		      -- select item and call Xt-action
			 ListKbdActivate() which calls the
			 :XMN_DEFAULT_ACTION_CALLBACK you 
			 have defined on an instance.
* single right click  -- select item and call method
  			 :EDIT_SELECTED_ITEM
</PRE>
Note key bindings on browser overriding XmList(3x)'s:
<PRE>
* [Key]E:	      -- Call method :EDIT_SELECTED_ITEM
* Ctrl[Key]N or	Ctrl[Key]osfDown:
		      -- Call method :GOTO_NEXT, which selects
			 the next item in the list.
* Ctrl[Key]P, or Ctrl[Key]osfUp:
		      -- Call method :GOTO_PREV, which selects
			 the previous item in the list.
* [Key]N, or [Key]osfDown:
		      -- Call method :BROWSE_NEXT which
			 selects the next item in the list and
		         calls ListKbdActivate() which calls
			 the :XMN_DEFAULT_ACTION_CALLBACK.
* [Key]P, [Key]osfUp: -- Call method :BROWSE_PREV which
			 selects the next item in the list and
		         calls ListKbdActivate() which calls
			 the :XMN_DEFAULT_ACTION_CALLBACK.
</PRE>

<DT> <a href="file-lview.lsp">file-lview.lsp</a>
<DD> Labelled_File_Viewer_Widget_Class a subclass of
XM_FORM_WIDGET_CLASS.
Note key bindings on viewer overriding XmText(3x)'s:
<PRE>
* [Key]space:		next-page()
* [Key]osfBackSpace:	previous-page()
</PRE>

<DT> <a href="file-view.lsp">file-view.lsp</a>
<DD> File_Viewer_Widget_Class a subclass of XM_TEXT_WIDGET_CLASS
with :SCROLLED option.
Note key bindings on viewer overriding XmText(3x)'s:
<PRE>
* [Key]space:		next-page()
* [Key]osfBackSpace:	previous-page()
</PRE>

<DT> <a href="filecomp.lsp">filecomp.lsp</a>
<DD> Load this prior to creating any XM_FILE_SELECTION_BOX_WIDGET_CLASS
and all WINTERP XmFileSelectionBox instances will have
a simple file completion capability within the "Filter" and
"Select" text areas. Completion occurs on [space] key entry.

<DT> <a href="fileselect.lsp">fileselect.lsp</a>
<DD> WINTERP:FILE-SELECTION-WIDGET a subclass of
XM_FILE_SELECTION_BOX_WIDGET_CLASS which allows file selection
as part of a larger widget panel without forcing user to see
the dialog controls (e.g. "Ok" "Filter" "Cancel" buttons).

<DT> <a href="numentry.lsp">numentry.lsp</a>
<DD> Cardinal_Number_Entry_Field_Widget_Class, a subclasses of
XM_TEXT_FIELD_WIDGET_CLASS.

<DT> <a href="object-br.lsp">object-br.lsp</a>
<DD> Object_Browser_Widget_Class, a subclass of
String_Browser_Widget_Class, a subclass of
XM_LIST_WIDGET_CLASS.
Inherits bindings from String_Browser_Widget_Class.

Note mouse bindings on browser override XmList(3x)'s:
<PRE>
* single left click   -- make item the current selection
* double left click, or single middle click
		      -- select item and call Xt-action
			 ListKbdActivate() which calls the
			 :XMN_DEFAULT_ACTION_CALLBACK you 
			 have defined on an instance.
* single right click  -- select item and call method
  			 :EDIT_SELECTED_ITEM, which may
			 be redefined by superclasses.
</PRE>
Note key bindings on browser overriding XmList(3x)'s:
<PRE>
* [Key]E:	      -- Call method :EDIT_SELECTED_ITEM
* Ctrl[Key]N or	Ctrl[Key]osfDown:
		      -- Call method :GOTO_NEXT, which selects
			 the next item in the list.
* Ctrl[Key]P, or Ctrl[Key]osfUp:
		      -- Call method :GOTO_PREV, which selects
			 the previous item in the list.
* [Key]N, or [Key]osfDown:
		      -- Call method :BROWSE_NEXT which
			 selects the next item in the list and
		         calls ListKbdActivate() which calls
			 the :XMN_DEFAULT_ACTION_CALLBACK.
* [Key]P, [Key]osfUp: -- Call method :BROWSE_PREV which
			 selects the next item in the list and
		         calls ListKbdActivate() which calls
			 the :XMN_DEFAULT_ACTION_CALLBACK.
</PRE>

<DT> <a href="simple-RC.lsp">simple-RC.lsp</a>
<DD> Subclasses of XM_ROW_COLUMN_WIDGET_CLASS which simplify
access to the "simple menu" creation routines. Specifically:
WINTERP:RADIO-BOX-WIDGET-CLASS, WINTERP:OPTION-MENU-WIDGET-CLASS,
WINTERP:MENU-BAR-WIDGET-CLASS, WINTERP:POPUP-MENU-WIDGET-CLASS,
WINTERP:PULLDOWN-MENU-WIDGET-CLASS, WINTERP:CHECK-BOX-WIDGET-CLASS

<DT> <a href="string-br.lsp">string-br.lsp</a>
<DD> String_Browser_Widget_Class, a subclass of XM_LIST_WIDGET_CLASS.
Note mouse bindings on browser override XM_LIST_WIDGET_CLASS's
<PRE>
* single left click   -- make item the current selection
* double left click, or single middle click
		      -- select item and call Xt-action
			 ListKbdActivate() which calls the
			 :XMN_DEFAULT_ACTION_CALLBACK you 
			 have defined on an instance.
* single right click  -- select item and call method
  			 :EDIT_SELECTED_ITEM, which may
			 be redefined by superclasses.
</PRE>
Note key bindings on browser overriding XM_LIST_WIDGET_CLASS's:
<PRE>
* [Key]E:	      -- Call method :EDIT_SELECTED_ITEM
* Ctrl[Key]N or	Ctrl[Key]osfDown:
		      -- Call method :GOTO_NEXT, which selects
			 the next item in the list.
* Ctrl[Key]P, or Ctrl[Key]osfUp:
		      -- Call method :GOTO_PREV, which selects
			 the previous item in the list.
* [Key]N, or [Key]osfDown:
		      -- Call method :BROWSE_NEXT which
			 selects the next item in the list and
		         calls ListKbdActivate() which calls
			 the :XMN_DEFAULT_ACTION_CALLBACK.
* [Key]P, [Key]osfUp: -- Call method :BROWSE_PREV which
			 selects the next item in the list and
		         calls ListKbdActivate() which calls
			 the :XMN_DEFAULT_ACTION_CALLBACK.
</PRE>

<DT> <a href="text-view.lsp">text-view.lsp</a>
<DD> Text_Display_Widget_Class a subclass of XM_TEXT_WIDGET_CLASS
with :SCROLLED option.
Note key bindings on browser overriding XmText(3x)'s:
<PRE>
* [Key]space:		next-page()
* [Key]osfBackSpace:	previous-page()
</PRE>

<DT> <a href="timechart.lsp">timechart.lsp</a>
<DD> Interactive_Chart_Widget_Class, and
Interactive_Chart_Elt_Widget_Class used by ../timesheet.lsp


<DT> <a href="timed-msg.lsp">timed-msg.lsp</a>
<DD> TIMED-MESSAGE-DISPLAY-WIDGET-CLASS, a subclass of
XM_TEXT_FIELD_WIDGET_CLASS which displays a message for
a predetermined amount of time. Useful for "status lines"...

</DL>
      <hr>
      <address><a href="mailto:npm@netwiz.net">Niels P. Mayer</a></address>
<!-- Created: Mon Nov 24 17:12:59 PST 1997 -->
<!-- hhmts start -->
Last modified: Fri Feb  5 12:48:15 PST 1999
<!-- hhmts end -->
  </body>
</html>
